1. Field of the Invention
This invention relates to a coefficient update unit used to effect a linear change in an electrical characteristic over a controllable time interval. More specifically it relates to an update unit used in music synthesizers and the like to effect changes in such characteristics as the amplitude of an audio signal.
2. Background Information
In music synthesizers it is often desirable to provide pre-programmed, electrically controllable changes in the characteristics of an audio signal. Thus synthesizers can automatically effect a prescribed change in the amplitude of a signal over a prescribed time interval. For reasons related to cost and speed of operation this is usually accomplished with a finite state machine that is constructed as an Application Specific Integrated Circuit (ASIC). The circuitry first divides the desired amplitude change by a number of standard time intervals to determine the nominal per-period update increment (PPI) in the coefficient. With the passage of each time interval the amplitude is incrementally updated by the amount of the PPI. The process is terminated when the target amplitude is reached.
If the prescribed change in signal characteristic is not exactly divisible by the prescribed number of time intervals, i.e. incremental coefficient updates, the resulting remainder must be distributed among the incremental updates. In practice this has been accomplished by adding one bit to selected incremental updates and subtracting one from the remainder until the remainder reaches zero. In prior systems, the remainder has not been spread evenly across the entire update period. This may result in a perceived noise update during the update procedure.
Specifically, if division of the amplitude change by the prescribed number of time intervals results in a quotient whose magnitude is greater than zero, the prior system ignores the remainder. This leaves a residue unless the remainder is zero and one or more further update routines must then be undertaken to effect the entire amount of the originally commanded update. Obviously, this results in an uneven distribution of the update increments. Moreover, this arrangement requires repeated involvement of the processor that commands the updates.
On the other hand, when the quotient is zero, the prior system increments (or decrements) the coefficient by one unit in successive time intervals until the remainder has been “used up”. The coefficient will thus reach its final value before the end of the commanded transition period and then remain unchanged for the remainder of the period.
Another drawback of the foregoing arrangement is the relatively large amount of the storage required. Moreover, the algorithm for division of the coefficient change by the number of requested time intervals requires a relatively long cycle for the state machine which processes the coefficient updates.